{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "* 日期：2022-10-19 \\ week09\n",
    "* 作业：总结列表（表格形式）\n",
    "* 记录人：陈蔚"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "| 列表的方法   | Description          | 使用方法            | 备注                                           |\n",
    "|---------|----------------------|-----------------|----------------------------------------------|\n",
    "| append  | 在列表末尾添加新的对象          | list.append( )  | 注意：增加在末尾！                                    |\n",
    "| count   | 统计某个元素在列表中出现的次数      | list.count( )   | 注意：返回元素在列表中出现的次数                             |\n",
    "| extend  | 在列表末尾一次性追加另一个序列中的多个值 | list.extend( )  | 注意：用新列表扩展原来的列表                               |\n",
    "| index   | 从列表中找出某个值第一个匹配项的索引位置 | list.index( )   | 注意：起始位置和结束位置                                 |\n",
    "| insert  | 将对象插入列表              | list.insert( )  | 注意：该方法没有返回值，但会在列表指定位置插入对象。                   |\n",
    "| pop     | 移除列表中的一个元素,并且返回该元素的值 | list.pop( )     | 注意：默认最后一个元素                                  |\n",
    "| remove  | 移除列表中某个值的第一个匹配项      | list.remove( )  | 注意：该方法没有返回值但是会移除列表中的某个值的第一个匹配项。              |\n",
    "| reverse | 反向列表中元素              | list.reverse( ) | 注意：该方法没有返回值，但是会对列表的元素进行反向排序。                 |\n",
    "| sort    | 对原列表进行排序             | list.sort( )    | 注意：reverse = True 降序， reverse = False 升序（默认） |\n",
    "| clear   | 清空列表                 | \tlist.clear()   | 注意：类似于 del a[:]                              |\n",
    "| copy    | 复制列表                 | \tlist.copy()    | 注意：类似于 a[:]                                  |"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## Python列表脚本操作符\n",
    "列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表，* 号用于重复列表。\n",
    "如下所示："
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "| Python 表达式                            | 结果                           | 描述         |\n",
    "|---------------------------------------|------------------------------|------------|\n",
    "| len ([1, 2, 3])                       | 3                            | 长度         |\n",
    "| [1, 2, 3] + [4, 5, 6]                 | \t[1, 2, 3, 4, 5, 6]          | 组合         |\n",
    "| ['Hi!'] * 4                           | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复         |\n",
    "| 3 in [1, 2, 3]                        | True                         | 元素是否存在于列表中 |\n",
    "| for x in [1, 2, 3]: print(x, end=\" \") | 1 2 3                        | 迭代         |"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## Python列表截取与拼接\n",
    "Python的列表截取与字符串操作类型，如下所示："
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "outputs": [],
   "source": [
    "L = ['Google', 'Runoob', 'Taobao']"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "| Python 表达式 | 结果                    | 描述                                   |\n",
    "|------------|-----------------------|--------------------------------------|\n",
    "| L[2]       | 'Taobao'              | 读取第三个元素                              |\n",
    "| L[-2]      | \t'Runoob'             | 从右侧开始读取倒数第二个元素: count from the right |\n",
    "| L[1:]      | \t['Runoob', 'Taobao'] | 输出从第二个元素开始后的所有元素                     |\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 列表比较\n",
    "列表比较需要引入 operator 模块的 eq 方法（详见：Python operator 模块）："
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "operator.eq(a,b):  False\n",
      "operator.eq(c,b):  True\n"
     ]
    }
   ],
   "source": [
    "# 导入 operator 模块\n",
    "import operator\n",
    "\n",
    "a = [1, 2]\n",
    "b = [2, 3]\n",
    "c = [2, 3]\n",
    "print(\"operator.eq(a,b): \", operator.eq(a, b))\n",
    "print(\"operator.eq(c,b): \", operator.eq(c, b))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 1.访问列表中的值\n",
    "与字符串的索引一样，列表索引从 0 开始，第二个索引是 1，依此类推。\n",
    "通过索引列表可以进行截取、组合等操作。"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "red\n",
      "green\n",
      "blue\n"
     ]
    }
   ],
   "source": [
    "list = ['red', 'green', 'blue', 'yellow', 'white', 'black']\n",
    "print(list[0])\n",
    "print(list[1])\n",
    "print(list[2])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "索引也可以从尾部开始，最后一个元素的索引为 -1，往前一位为 -2，以此类推。"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "black\n",
      "white\n",
      "yellow\n"
     ]
    }
   ],
   "source": [
    "list = ['red', 'green', 'blue', 'yellow', 'white', 'black']\n",
    "print(list[-1])\n",
    "print(list[-2])\n",
    "print(list[-3])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "使用下标索引来访问列表中的值，同样你也可以使用方括号 [] 的形式截取字符，如下所示："
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10, 20, 30, 40]\n"
     ]
    }
   ],
   "source": [
    "nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]\n",
    "print(nums[0:4])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "使用负数索引值截取："
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "list[1]:  Runoob\n",
      "list[1:-2]:  ['Runoob', 'Zhihu']\n"
     ]
    }
   ],
   "source": [
    "list = ['Google', 'Runoob', \"Zhihu\", \"Taobao\", \"Wiki\"]\n",
    "\n",
    "# 读取第二位\n",
    "print(\"list[1]: \", list[1])\n",
    "# 从第二位开始（包含）截取到倒数第二位（不包含）\n",
    "print(\"list[1:-2]: \", list[1:-2])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 2.更新列表\n",
    "可以对列表的数据项进行修改或更新，也可以使用 append() 方法来添加列表项"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第三个元素为 :  1997\n",
      "更新后的第三个元素为 :  2001\n",
      "更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']\n"
     ]
    }
   ],
   "source": [
    "list = ['Google', 'Runoob', 1997, 2000]\n",
    "\n",
    "print(\"第三个元素为 : \", list[2])\n",
    "list[2] = 2001\n",
    "print(\"更新后的第三个元素为 : \", list[2])\n",
    "\n",
    "list1 = ['Google', 'Runoob', 'Taobao']\n",
    "list1.append('Baidu')\n",
    "print(\"更新后的列表 : \", list1)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 3.删除列表元素\n",
    "可以使用 del 语句来删除列表的的元素，如下实例：v"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始列表 :  ['Google', 'Runoob', 1997, 2000]\n",
      "删除第三个元素 :  ['Google', 'Runoob', 2000]\n"
     ]
    }
   ],
   "source": [
    "list = ['Google', 'Runoob', 1997, 2000]\n",
    "\n",
    "print(\"原始列表 : \", list)\n",
    "del list[2]\n",
    "print(\"删除第三个元素 : \", list)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
